package com.example.dao.menuMapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.dto.menu.Menu;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.*;

@Repository
public interface MenuMapper  {

    /**
     * 新增菜单
     * @param
     * @return
     */
    void save(Menu menu);

    String findByTitle(String menu);

    String findByPath(String path);

    int findCount(Map<String, Object> MenuCriteria);

    void deleteById(@Param("ids")List<Long> ids);
    /**
     * 根据菜单的 PID 查询
     * @param pid /
     * @return /
     */
    List<Menu> findByPidOrderByMenuSort(long pid);
    /**
     * 查询顶级菜单
     * @return /
     */
    List<Menu> findByPidIsNullOrderByMenuSort();

    Menu findByids(Long id);

    /**
     * 根据角色ID与菜单类型查询菜单
     * @param roleIds roleIDs
     * @return /
     */
    LinkedHashSet<Menu> findByRoleIdsAndTypeNot(Set<Long> roleIds, int type);

    Menu findByMenusId(Long id);

    Menu findByTitles(String title);
    /**
     * 根据组件名称查询
     * @param
     * @return /
     */
    Menu findByComponentName(String componentName);


    /**
     * 获取节点数量
     * @param id /
     * @return /
     */
    int countByPid(Long id);
    /**
     * 更新节点数目
     * @param count /
     * @param menuId /
     */
    void updateSubCntById(int count, Long menuId);

    List<Menu> selectList(Map<String, Object> hash);

    int findCounts(Long id);

    void creat(Menu resources);

    List<Menu> findByID(Long id);

}
